package com.weiliang.www.holdon;


public class findMaxChildren {
    public static void main(String[] args) {
        //定义一个数列
        int[] nums = new int[]{1, 2, -1, 3, 5, 6};
        int result = findChildren(nums);
        System.out.printf("最大的子列和是：" + result);
    }

    //算法思想，在线处理
    private static int findChildren(int[] nums) {
        int maxChildren = 0;
        int result = 0;
        for (int i = 0; i < nums.length; i++) {
            //把当前的值赋给第一个
            maxChildren = nums[i];
            //结果累加
            result += maxChildren;
            //判断当前累加值和下一个元素的值谁大，大的赋值给结果
            if (result <= maxChildren) {
                result = maxChildren;
            }
            //如果结果等于负数，赋值为0，应为负数会减少后边的列数。
            else if (result < 0) {
                result = 0;
            }
        }
        return result;
    }
}
